「在邏輯裡面再包邏輯」:條件判斷或迴圈裡面再寫條件或迴圈,讓程式具備更多層次。
範例:判斷奇偶數並分類大小
num = int(input("請輸入一個整數:"))
if num % 2 == 0:
print("這是偶數")
if num > 100:
print("而且是很大的數字")
else:
print("這是奇數")
if num < 10:
print("而且是很小的數字")
當你要「中途結束整個迴圈」,用 break 就對了!
範例:猜數字遊戲(碰到正確答案就離開)
secret = 7
while True:
guess = int(input("猜一個數字(1~10):"))
if guess == secret:
print("答對了!")
break
else:
print("再試一次!")
當你要「略過某個條件下的程式碼,但繼續跑迴圈」,就用 continue
範例:印出 1~10 的奇數
for i in range(1, 11):
if i % 2 == 0:
continue # 偶數跳過,不印
print(i)
import random
target = random.randint(1, 100)
attempt = 0
while True:
user_input = input("請輸入 1~100 的整數:")
if not user_input.isdigit(): # 如果輸入不是數字
print("請輸入數字!")
continue # 跳過本輪,繼續下一輪
guess = int(user_input)
attempt += 1
if guess == target:
print(f"恭喜你猜對了!總共猜了 {attempt} 次")
break # 猜中就跳出迴圈
elif guess < target:
print("太小了,再試一次!")
else:
print("太大了,再試一次!")
我覺得最有趣的是,每次出現的數字都是電腦隨機生成的,完全無法預測下一個數字會是什麼!還記得當初在學 Java 做到這個實作時,真的覺得非常神奇——只需要一些英文單字、數字和符號,就能讓電腦完成這麼多事情!
功能 | 關鍵字 | 用途 |
---|---|---|
巢狀邏輯 | if 、for 、while |
建立條件中套條件、迴圈中套迴圈 |
強制中斷 | break |
結束整個迴圈 |
略過一次 | continue |
略過當前這次,不結束整個迴圈 |
今天的主題是巢狀邏輯與 break / continue,明顯感受到難度開始上升了!
從一開始的條件判斷、簡單迴圈,到現在的「邏輯中再套邏輯」,雖然不至於完全看不懂,但在實際動手寫時,常常會有點混亂:「這個 if 是對哪個條件說的?」「這個 break 會跳出哪一層?」每當變數變多、條件變複雜時,都會覺得腦袋快打結了!
明天要進入另一個主題:List(串列)操作-增刪改查到排序!